package com.tsinghuabigdata.edu.ddmath.util;

import com.tsinghuabigdata.edu.ddmath.bean.LoginInfo;
import com.tsinghuabigdata.edu.ddmath.bean.UserDetailinfo;
import com.tsinghuabigdata.edu.ddmath.commons.AppSessionCache;
import com.tsinghuabigdata.edu.ddmath.constant.AppConst;
import com.tsinghuabigdata.edu.ddmath.module.apkupgrade.UpdateInfo;

/**
 * <p>
 * Created by yanshen@tsinghuabigdata.com on 2015/11/24.
 * </p>
 *
 * @author yanshen@tsinghuabigdata.com
 * @version V1.0
 * @packageName: com.tsinghuabigdata.edu.ddmath.util
 * @createTime: 2015/11/24 17:16
 */
public class AccountUtils {

    public static void setLoginUser(LoginInfo loginUser) {
        AppSessionCache.getInstance().put(AppConst.SESSION_LOGIN_USER, loginUser);
    }

    public static LoginInfo getLoginUser() {
        AppSessionCache cache = AppSessionCache.getInstance();
        if (cache == null) {
            return null;
        }
        return cache.get(AppConst.SESSION_LOGIN_USER);
    }

    public static void setUserdetailInfo(UserDetailinfo studentInfo) {
        AppSessionCache.getInstance().put(AppConst.SESSION_STUDENT_INFO, studentInfo);
    }

    public static UserDetailinfo getUserdetailInfo() {
        return AppSessionCache.getInstance().get(AppConst.SESSION_STUDENT_INFO);
    }

    public static void setApkUpdateInfo(UpdateInfo updateInfo) {
        AppSessionCache.getInstance().put(AppConst.APK_LATEST_VERSION_INFO, updateInfo);
    }

    public static UpdateInfo getApkUpdateInfo() {
        return AppSessionCache.getInstance().get(AppConst.APK_LATEST_VERSION_INFO);
    }

    public static void setSerialNums(String[] serialNums) {
        AppSessionCache.getInstance().put(AppConst.SESSION_SERIAL_NUMS, serialNums);
    }

    public static String[] getSerialNums() {
        return AppSessionCache.getInstance().get(AppConst.SESSION_SERIAL_NUMS);
    }

    public static void clearLoginUser() {
        AppSessionCache.getInstance().remove(AppConst.SESSION_LOGIN_USER);
    }

    public static void setDnsProxy(Boolean use) {
        AppSessionCache.getInstance().put(AppConst.SESSION_USE_PROXY, use);
    }

    public static Boolean getDnsProxy() {
        return AppSessionCache.getInstance().get(AppConst.SESSION_USE_PROXY);
    }

//    public static String getUserName() {
//        //优先取学生真实姓名，如果没有就取昵称，如果再没有就取账号名。
//        String name = AccountUtils.getStudentInfo().getReallyName();
//        if (TextUtils.isEmpty(name)) {
//            name = AccountUtils.getStudentInfo().getUserName();
//            if (TextUtils.isEmpty(name)) {
//                name = AccountUtils.getStudentInfo().getLoginName();
//            }
//        }
//        if (name == null) {
//            name = "";
//        }
//        return name;
//    }
//
//    public static String getURLUserName() {
//        //取昵称，之后学生真实姓名，如果再没有就取账号名。
//        String name = AccountUtils.getStudentInfo().getUserName();
//        if (TextUtils.isEmpty(name)) {
//            name = AccountUtils.getStudentInfo().getReallyName();
//            if (TextUtils.isEmpty(name)) {
//                name = AccountUtils.getStudentInfo().getLoginName();
//            }
//        }
//        if (name == null) {
//            name = "";
//        }
//        return name;
//    }

    /**
     * 清空
     */
    public static void clear() {
        // 退出JPush推送
        //退出时耗时太久
        //JPushInterface.stopPush(ZxApplication.getApplication());

        // 删除登录信息
        AppSessionCache.getInstance().remove(AppConst.SESSION_LOGIN_USER);
        // 删除笔序列号
        AppSessionCache.getInstance().remove(AppConst.SESSION_SERIAL_NUMS);
        // 删除学生信息
        AppSessionCache.getInstance().remove(AppConst.SESSION_STUDENT_INFO);
    }

    /**
     * 获取帐号类型
     *
     * @return
     */
//    public synchronized static String getAccountType() {
//        /*if(AppUtils.isDebug()) {
//            return AppConst.TOC_USER;
//        }*/
//        if (AppSession.getInstance().has(AppConst.SESSION_ACCOUNT_TYPE)) {
//            return AppSession.getInstance().get(AppConst.SESSION_ACCOUNT_TYPE);
//        } else {
//            LoginInfo loginInfo = getLoginUser();
//            if (loginInfo == null) {
//                return null;
//            }
//            String type = loginInfo.getAccountType();
//            AppSession.getInstance().put(AppConst.SESSION_ACCOUNT_TYPE, type);
//            return type;
//        }
//    }

    /**
     * 是否是TOC用户
     *
     * @return
     */
//    public static boolean isToCUser() {
//        return AppConst.TOC_USER.equals(getAccountType());
//    }

    /**
     * 网易云配置
     */
//    public static void saveHomeMsgCache(List<MessageInfo> res) {
//        saveHomeMsgCache(res, getStudentInfo().getStudentId());
//    }
//
//    public static void saveHomeMsgCache(List<MessageInfo> res, String studentid) {
//        int temp = MD5Util.str2MD5Num(studentid);
//        AppSessionCache.getInstance().put(AppConst.HOME_MSG_CACHE + temp, res);
//    }
//
//    public static List<MessageInfo> getHomeMsgCache(String studentid) {
//        int temp = MD5Util.str2MD5Num(studentid);
//        return AppSessionCache.getInstance().get(AppConst.HOME_MSG_CACHE + temp);
//    }
//
//    public static List<MessageInfo> getHomeMsgCache() {
//        return getHomeMsgCache(getStudentInfo().getStudentId());
//    }
//
//    public static void clearHomeMsgCache() {
//        String studentid = getStudentInfo().getStudentId();
//        int temp = MD5Util.str2MD5Num(studentid);
//        AppSessionCache.getInstance().remove(AppConst.HOME_MSG_CACHE + temp);
//    }
}
